#ifndef __FILESYSTEM_H_
#define __FILESYSTEM_H_

#include <stdbool.h>
#include <stddef.h>
/* 分包发送结构体 */
struct PacketFile;
typedef struct PacketFile PackFile;


struct FileSystem;
typedef struct FileSystem FileSys;
FileSys* FileSystemInit(const char* DirPath);
//在根目录下创建新文件夹
bool CreateNewDirInFs(FileSys *fs,const char *DirName);
//在根目录下删除一个文件夹
bool DeleteDirInFs(FileSys *fs,const char *DirName);
//在根目录下是否存在一个DirName文件夹
bool isDirExist(FileSys *fs,const char * DirName);
//获取文件大小
char *GetFileSize(const char *DirPath, const char *fileName);
//在根目录下的文件夹内写入文件数据
void WriteFileToFs(FileSys *fs,const char * DirName,const char *fileName,void *p,size_t size);
//查看根目录下的文件
char * GetFileList(FileSys * fs, const char * DirName);
//查看根目录下指定文件夹是否存在某文件
bool IsFileExist(FileSys *fs, const char *DirName, const char *FileName);
//获取文件路径
char *GetServerFileDirPath(FileSys *fs, const char *username, const char *filename);

PackFile *PacketFileInit(const char *filePath);
void ReadFromFile(PackFile *f, void *p, int *size);

bool IsFileEnd(PackFile *f);
void ClearPacketFile(PackFile *f);
#endif